专利摘要:
The present invention relates to a method / system for accessing personal data. It uses an access token server (210), a data server (240) and a block chain (250). The access token server generates the access rights of the different users in the form of access tokens. The access token server stores an access token by transmitting it via a first transaction, to a first smart contract of the blockchain. A user may request access authorization by transmitting a second transaction to a second intelligent contract that can access the token by presenting cryptographic elements to authenticate the user. If the authorization is granted, it is registered by the second contract in the block chain. A user (220) can then access the personal data by transmitting an access request to the data server. This queries the second smart contract to verify the authorization and obtain the access token. The data server then transmits, via a secure channel (247), the personal data stored at a specified URL in the token.
公开号:FR3079322A1
申请号:FR1852585
申请日:2018-03-26
公开日:2019-09-27
发明作者:Christine Hennebert;Laurent-Frederic Ducreux;Matthieu Volat
申请人:Commissariat a lEnergie Atomique CEA;Commissariat a lEnergie Atomique et aux Energies Alternatives CEA;
IPC主号:
专利说明:

METHOD AND SYSTEM FOR MANAGING ACCESS TO PERSONAL DATA USING A SMART CONTRACT
DESCRIPTION
TECHNICAL AREA
The present invention relates generally to the management of access to personal data, such as that from connected objects. It also relates to the field of block chains (blockchains) and more particularly those which allow the execution of intelligent contracts (smart contracts).
PRIOR STATE OF THE ART
The management of access rights in an information system is of critical importance, recently accentuated by the prospect of the coming into force of the General Data Protection Regulation (GDPR) 2016/679 in the EU.
The GDPR Regulation (art. 25) requires in particular that technical measures be taken from the design of the information system to guarantee the protection of personal data and the restriction of their access according to the specific purpose of each processing.
In particular, it is necessary to protect access to data which could reveal the behavior or lifestyle of a given user. Thus, for example, the data collected by a network of sensors intended to measure the electricity consumption and / or the water consumption of a user of a loT system (Internet ofThings) could betray his hours of presence at his home and make the latter more vulnerable to intrusion.
Different methods can be used to protect personal data and respect the privacy of users. Mention may in particular be made of the anonymization of data, consisting in storing and, where appropriate, processing personal data without the possibility of identifying the person to whom this data belongs, and the confidentiality of data, achieved by encryption of personal data by of a key.
Whatever the method of protection of personal data, it is necessary to define a method for managing access rights to this data, specifying in particular who has access to which data and under what conditions.
The management of access rights in a loT system is generally based on a version derived from the OAuth 2.0 protocol, shown in Fig. 1.
It is recalled that the principle of OAuth 2.0 is to grant a client application a right of access to resources available on a resource server, by means of a token materializing the right of access in question.
When a client application, 110, (residing for example in Alice's smartphone) wishes to access resources from sensors 190 (typically measurements from sensors belonging to Alice) and stored in the database of a server 130, it requests from the authorization server 120 a right of access to the resources in question. If a user profile with the corresponding access rights has been previously created in the authorization server (AuthZ), the said application is granted access to the resources in question. To do this, the authorization server generates in step 1 an access token and transmits it to the client application. The validity of the access token may depend on contextual elements and is limited in time. The user then transmits in step 2 a request to the data server 130 by presenting his access token. The data server 130 then checks in step 3 with the authorization server 120 if the user does indeed have access rights to the requested resources and, if this is indeed the case, receives in step 4 a authorization of the latter. The data server then responds favorably to the user's request and, in step 5, transmits the requested resources to the client application.
The solution shown in Fig. 1 however becomes very complex to use when an agile access rights management policy has to be implemented, distinguishing users on the basis of their identity or contextual attributes, such as group membership , for example. In such a case, adding a user to a group or leaving this group requires revoking the key for all members of the old group and distributing a new encryption key to all members of the new group. In addition, if a user belongs to several groups, this leads to having to encrypt the same data with different keys.
In addition, the solution shown in FIG. 1 uses a centralized trusted third party, namely the authorization server 120. This server is in charge of authenticating users, verifying their access rights and issuing access authorizations . It is therefore a critical element in terms of security, potentially vulnerable in the event of attacks, in particular denial of service attacks.
The article by G. Zyskind et al. entitled “Decentralizing privacy: using blockchain to protect personal data”, published in Security and Privacy Workshop (SPW), pp. 180-184, May 2015, proposes to decentralize the management of personal data using a blockchain. Access authorizations are issued directly by the data owner and stored in the blockchain by means of a transaction (T). Data is stored encrypted and distributed to network nodes using a distributed hash table (DHT).
This solution, although no longer requiring a centralized trusted third party, does not allow delegated management of access rights, nor agile management of these rights.
The object of the present invention is therefore to propose a method and a system for managing access rights to personal data which do not require recourse to a centralized trusted third party, allow agile and delegated management of user rights. 'access, especially when it is necessary to manage groups of users.
STATEMENT OF THE INVENTION
The present invention is defined by a method of access to personal data belonging to a data owner, the rights of access of a user to this data for a predetermined use being represented by an access token, in which:
(a) the access tokens are generated by an access token server in accordance with access rules stored in a first database hosted by said server, the access token of said user being identified by an identifier of token and transmitted, by means of a first transaction, to a first smart contract stored in a blockchain, the first smart contract registering the access token in the blockchain;
(b) a terminal of said user transmits, by means of a second transaction, an access authorization request identified by an authorization request identifier, to a second intelligent contract stored in the blockchain, the second contract intelligent interrogating the first intelligent contract and obtaining the access token by providing it with cryptographic elements making it possible to authenticate the user, then determining whether the access conditions contained in the token are well fulfilled and, if so, recording access authorization in the blockchain;
(c) the terminal of said user transmits an access request to the data server, the access request comprising said authorization request identifier, the data server interrogating the second smart contract by providing it with said request request identifier. authorization, the second smart contract returning the token corresponding to this request to the data server if an access authorization corresponding to the identifier of the authorization request is correctly recorded in the block chain, the data server reading the data personal data stored in a second personal database at a URL specified in the token, and transmitting them to the terminal of said user.
According to a variant, in step (a), following the emission of the first transaction, the access token server transmits a consent request to the terminal of the owner of the personal data and the latter transmits a third transaction to destination of a third smart contract stored in the blockchain, the third transaction comprising a first Boolean variable indicating the consent or refusal of the consent of the owner of the data to the access of this data by said user.
The second transaction may include the payment of an amount in cryptocurrency to the data owner.
Said cryptographic elements typically comprise a public key of the user as well as a wallet address obtained by hashing of said public key.
Prior to step (b), the token identifier is advantageously transmitted to the terminal of said user.
Preferably, in step (b), the access authorization request is recorded in the block chain.
The access token advantageously comprises a first field containing the token identifier, a second field containing an identifier of the user, a third field containing an identifier of the owner of the personal data, a fourth field containing the URL where are located personal data and a fifth field containing a digital fingerprint of a set of access parameters.
In this case, in step (c), the access request transmitted by the terminal of said user further comprises said set of access parameters and the data server verifies that the digital fingerprint contained in the token access corresponds to said set of access parameters before reading the stored personal data and transmitting it to said user.
The second field can also include a wallet address of the user as well as a public key of the user and the third field can include a wallet address of the owner of the data as well as a public key of the latter.
The access token may also have a sixth field containing the expiration date of said token.
The access token may also include a seventh field containing a Boolean variable indicating whether the data owner has given his consent.
Finally, the access token can include an eighth field containing a Boolean variable indicating whether an amount required for the use of the token has been set.
Advantageously, a fourth smart contract is stored in the blockchain, this fourth contract having the function of maintaining a balance of accounts in cryptocurrency of the user, the data owner, the access token server and the server. of data.
According to a variant, in step (c), the personal data read from the second database are transmitted to the terminal of said user via a secure channel (247).
The data server can process personal data before transmitting it to the terminal of said user.
The invention is also defined by a system for managing access to personal data comprising an access token server hosting a first database containing the access profiles of different users, a terminal of a user, a data server hosting a second database in which said personal data is stored, the terminal of said user being connected to the data server via a secure channel, the access token server, the terminal of said user and the data server having each an interface allowing them to communicate with a block chain;
said access token server being configured to generate an access token for a user, in accordance with access rules stored in the first database, and to transmit said token, identified by a token identifier, to a first smart contract stored in the blockchain, by means of a first transaction, the first smart contract recording the access token in the distributed register of the blockchain;
the terminal of said user being configured to transmit, by means of a second transaction, an access authorization request identified by an authorization request identifier, to a second intelligent contract stored in the blockchain, the second contract intelligent interrogating the first intelligent contract and obtaining the access token by providing it with cryptographic elements making it possible to authenticate the user, then determining whether the access conditions contained in the token are well fulfilled and, if so, recording access authorization in the blockchain;
the terminal of said user being further configured to transmit an access request to the data server, the access request comprising said authorization request identifier, the data server then interrogating the second smart contract by providing it with said authorization request, the second intelligent contract returning the token to the data server if an access authorization corresponding to the identifier of the authorization request is indeed recorded in the block chain;
the data server being configured to read the personal data stored, in the second database, at a URL specified in the token, and to transmit the personal data to the terminal of said user via the secure channel.
BRIEF DESCRIPTION OF THE DRAWINGS
Other characteristics and advantages of the invention will appear on reading a preferred embodiment of the invention, with reference to the attached figures among which:
Fig. 1, already described, schematically represents a method of managing access rights to resources of a loT system, known from the state of the art;
Fig. 2 schematically represents a system capable of implementing a method for managing access rights to personal data according to the present invention;
Figs. 3A to 3C schematically represent the main steps of a method for managing access rights to personal data according to an embodiment of the invention;
Fig. 4 schematically represents the interactions of an intelligent contract with the elements of the system of FIG. 2 during the steps implemented in FIGS. 3A-3C;
Figs. 5A and 5B schematically represent the messages and transactions exchanged between elements of the system of FIG. 2 during the steps implemented in FIGS. 3A-3C.
DETAILED PRESENTATION OF PARTICULAR EMBODIMENTS
The present invention relates to the management of access to personal data and more particularly to access rights to this data. By personal data, we mean any information relating to an identified or identifiable natural person, directly or indirectly. This personal data can in particular come from connected devices (sensors of a loT network) located in the environment of the natural person (home for example).
To guarantee the privacy of individuals and in particular users of a loT network, it is necessary to protect access to this personal data. In other words, it should not be possible for a third party to be able to access this personal data without having previously obtained the authorization of the corresponding natural person. This natural person will be designated subsequently as the owner of the personal data.
Access to this data must comply with a set of access rules (policy) previously defined. The purpose of these access rules is to describe who can access what under what conditions and, if applicable, for what use and at what cost. In particular, different users may benefit from different access authorizations according to different use cases and their respective profiles. The access rules of the different users can be advantageously described using a markup language.
The present invention is based on a network architecture without a central security server, such as the access authorization server known from the prior art. The role of the traditional security server is devolved in part to smart contracts operated by a block chain (blockchain) / a distributed ledger (ledger).
It is recalled that a block chain consists of chained blocks by means of a cryptographic mechanism. Chaining is obtained by inserting the hash (hash) of the previous block in the content of the current block. Adding new blocks to the chain is done at regular intervals. Adding a block to the chain implies that its content has been verified, as well as creating a "link" connecting the block to the chain. This link is created by a “mining” operation, currently a “proof of work” consisting for example of adding a word to the block, such that the hash of the word concatenated to the block satisfies a predetermined constraint.
The blockchain forms a register which is distributed and replicated in the various nodes of the network. These nodes can interact with the blockchain and use its content. The integrity of the information included in the blocks of the chain is guaranteed by cryptographic functions.
We will consider in the following a blockchain capable of storing not only transactions (as in Bitcoin) but also of executing the code of intelligent contracts (smart contracts). An example of such a blockchain is Ethereum. A smart contract is a software code that can be stored in a block of the distributed register. This software code can be accessed at a determined address and can include one or more functions. The execution of a smart contract function can be triggered by sending a transaction sent from a wallet to the address of the code in question, the transaction comprising the identification of the function to be executed and the arguments expected in entered by this function.
Fig. 2 schematically represents a system capable of implementing a method for managing access rights to personal data according to the present invention.
There is shown in 210 a device generating access rights. This device is in the form of an access token server connected to a first database 215 in which the access profiles of the different users are stored. The access rights generating device is responsible for generating access tokens for users with an access profile in the first database. Each access token generated for a user represents the access rights of this user, in accordance with the corresponding access profile. The access rights generating device is also responsible for updating the access profiles of the different users, in particular for their creation, modification or deletion.
Access profiles must comply with access policies. These access rules may differ from one use to another. Thus, for example, a first set of access rules may be provided when the owner of the personal data is himself a user (in other words, in this case, the owner consults his own data), a second set of rules for access when the owner of the personal data gives a possibility of access to a single type of user, and a third set of access rules when the owner of the personal data gives one or more possibilities of access to different users. When the system implements several sets of access rules, these sets are stored in a database, called the reference database (not shown).
Whatever the variant envisaged, a user of the system can formulate a request for access to personal data by means of a terminal 220, such as a computer, a tablet or a smartphone. The user can be a natural person or an automaton in the form of software hosted in the terminal in question.
Where appropriate, the system also involves the owner of the personal data who may, by means of a terminal 230, express his consent or his refusal of consent, when the access profile of a user requires to collect the consent of the data owner. Obtaining consent will not be necessary when the owner of personal data is required to consent to access under a legal or regulatory obligation or because the user is none other than the owner of personal data. (consultation of its own data).
Once the access token has been generated and, if applicable, the consent of the data owner, the user may be granted access authorization according to a process which will be described later. The user thus authorized sends a request to consult the personal data to the data server 240. The data server 240 has a second database 245 in which the personal data are stored. The data server then supplies the user via a secure channel 247 with the data corresponding to the authorization which has been granted to him. As we will see below, the various operations such as issuing access rights, expressing the consent of the data owner, formulating an access request, granting authorization to access involves smart contracts (or even a single smart contract bringing together all of their respective functions). These smart contracts are stored in the distributed register of a blockchain 250.
Each of the elements of the system, namely the access token server, 210, the user terminal, 220, the owner of the personal data terminal, 230, and the data server, 240, has an interface allowing it to interact with the blockchain 250.
The correct execution of smart contracts is verified by checking devices, 290. These checking nodes are in practice nodes having a full copy of the register (full nodes). The verifier nodes validate the result of this execution according to a consensus mechanism, for example by means of a proof of work, a proof of stake, or even a proof of proof of authority if the blockchain is private.
The different steps of the access management method will be described below in relation to Figs. 3A to 3C.
The first step shown in Fig. 3A concerns the generation of user access rights and their registration in the block chain.
It is assumed that the access profiles of the different users have been previously stored in the first database, 215. The access profiles could, for example, have been entered by means of a GUI interface in a format conforming to the rules of access. If necessary, the first database can contain, for the same user, several profiles for different access rules of the reference database.
The device generating access rights (access rights server) generates tokens representing the access rights of different users to resources (personal data). A token corresponds to a user for a predetermined use. It is defined by a structured set of data comprising several fields and must conform to the access profile specified in the first database, 215.
A first field contains a token identifier (for example a randomly drawn number), TokUID.
A second field contains the identifier of the user (or of the automaton, or even of the connected object), owner of the token. This identifier is generally the user's wallet address. However, when different users are likely to have the same wallet address (case of Ethereum where the wallet address includes only 180 bits of the fingerprint (256-bit hash obtained by SHA-256) of the public key obtained), this second field may also include the user's public key.
A third field contains the identifier of the owner of the personal data. This third field is optional and may be omitted when the owner of the personal data can be deduced unequivocally from the user identifier. As before, in the event of a possible collision between wallet addresses, the third field may also include the public key of the data owner.
A fourth field includes the URL where the personal data for which the token gives access is located. It points to a page or resource where the data is located, such as a page or file on the data server.
A fifth field includes a hash (imprint) of a set of concatenated access parameters: an identifier of the data source, an identifier of the access rule and of the use case authorized under this access rule. This imprint characterizes the authorized access;
An optional sixth field gives the expiration date of the token. If necessary, this field can also indicate if the token has been revoked (boolean variable)
An optional seventh field indicates whether the data owner has given their consent for the use for which the token is intended (boolean variable).
An optional eighth field indicates whether the amount, if any, associated with the use of the token has been paid.
The order of the different fields can of course differ from one implementation to another. Other fields may also be envisaged by those skilled in the art without departing from the scope of the present invention.
As an example, we will find below a declaration of structure of access token for Ethereum blockchain, in Solidity language:
struct Token {uint256 hash; // devid + lot + use pol string locdata; // U RL address owner; // data owner bytes32 publickeyowner; // public key owner address user; // token owner / data user bytes32 publickeyuser; // public key user uint expires; // expiration date bool revoked; // validity bool consent; // consent from owner}
public tokens mapping (uintl28 => Token);
We recognize successively in this declaration, the imprint characteristic of the authorized access, the URL of the data server, the wallet address of the data owner, the public key of this owner, the wallet address of the user, token expiration date, token validity status, data owner consent status.
The access rights generating device has a wallet address (also called an account address in Ethereum) @ walletTokserver from which it can send transactions to the block chain. This wallet address is obtained by hashing its public key using a hash function (such as SHA-256 for example).
In step 310, the access token server (in other words the access rights generating device) transmits a first transaction to a first smart contract (#Subscribe), stored in the block chain at a predetermined account address. This transaction has as argument an access token in the above format. This token may have been previously initialized, indicating that the owner's consent has not (yet) been given.
The access rights server uses a particular function of the #Subscribe contract which contains a locking script (scriptLockPolicy # n where n indexes the use case) associated with the use case considered. This lock script registers the token in the distributed register of the blockchain.
The owner of personal data may be required to provide his consent to the consultation of personal data, either outside the blockchain (for example by means of a mandate contract signed by the parties), or through the chain of blocks. The consent granted to a user is generally linked to a particular access profile.
When consent must be obtained through the blockchain, the access token server transmits a consent request to the owner of the data in 320. The owner gives his consent by transmitting in 330, from his address wallet (or account address), @ walletOwner, a transaction (hereinafter referred to as the third transaction) to a smart contract (called the third smart contract, #Consent) stored in the blockchain. After identifying the owner, said third transaction modifies the state of the Boolean variable Consent expressing the consent of the value FALSE to the value TRUE if the owner of the personal data authorizes access. The third transaction includes as argument the public key of the data owner, a nonce, the value of the variable Consent (FALSE or TRUE) and a digital signature of the transaction using the private key of the data owner. The nonce can be a transaction order number and is intended to avoid replay attacks. Said third contract can verify using this digital signature that the consent comes from the owner of the data before entering the logical value of the consent in the block chain.
In all cases, the access rights generator 210 then notifies (notification outside the blockchain) to the user at 340 that a token for him has been created and stored in the blockchain and communicates to him the identifier of the token thus created, TokUID.
The user is then able to consult the distributed register of the block chain to read there, from his wallet address (@ walletUser), the token thus stored.
The proper execution of the #Subscribe and #Consent smart contracts, the registration of the token and, where applicable, the consent of the owner of the personal data, are verified and validated by the verifying nodes, 290, on the basis of the aforementioned consensus mechanism. .
The second step, shown in Fig. 3B, concerns the issue by the user of a request for authorization to access personal data and the authorization granted to him in return, if applicable.
The user wishing to obtain an authorization to access the owner's personal data issues, in 350, a transaction (hereinafter referred to as the second transaction), from the wallet address @ walletUser and destined for a second smart contract {#Authorize} stored in the blockchain. This transaction is identified by an access authorization request identifier in the form of a serial number, idReq # p, generated by the user.
The second transaction has as argument the public key of the user {PublicKey), the identifier of the access authorization request (IdReq # p), the identifier of the token {TokUID), and a digital signature of the transaction ( SigNum) using the user's private key. By digital signature is meant a cryptographic element making it possible to verify that the author of the transaction is indeed the one identified by the public key. For example, when the block chain is Ethereum, the digital signature can be provided by the sign function.
The second transaction uses a special function from the #Authorize smart contract, playing the role of unlock script (scriptUnlockPolicy # n where n indexes the use case) corresponding to the lock script in the contract # Subscribe.
The unlock script calls in 351 the first smart contract, #Subscribe, by supplying it with an argument, the token identifier, TokUID. Using this identifier, the #Subscribe smart contract finds the token and transmits it in 352 to the #Authorize smart contract. The unlock script uses the cryptographic elements provided by the user, namely the user's public address, PublicKey, as well as the digital signature of the transaction, SigNum, to unlock the token.
If the cryptographic elements correspond well to those indicated in the locking script, the token is unlocked and, if it is still valid (if the date indicated in the sixth field of the token is much later than the date of use), a access authorization (AuthZ) is stored in relation to its identifier (idReq # p) in the distributed register of the block chain. The access authorization contains the identifier of the token for which it was granted (TokUID). The access authorization includes, if applicable, the parameters for the validity of this authorization: validity period, maximum number of consultations, etc.
On the other hand, if the cryptographic elements do not correspond to those expected or if the token is expired, no access authorization is stored in the distributed register of the block chain. If applicable, the second transaction will include the payment of an amount in cryptocurrency to compensate the access service and / or the owner of the personal data. The payment of the price may constitute a condition to be fulfilled for obtaining authorization.
The user is able to consult the distributed register and determine whether an access authorization has been granted or not and under what conditions. More specifically, he will be able to read the status of the access authorization in the register in relation to the identifier IdReq # p.
Again, the proper execution of the #Authorize and #Subscribe smart contracts, unlocking the token, conditions of use, payment of the required price, registration of the access authorization are verified and validated by the nodes verifiers, 290, on the basis of the aforementioned consensus mechanism.
The third step, shown in Fig. 3C, relates to the actual access to personal data by the user.
The user transmits in 360, by means of his terminal 220, a request for access to personal data intended for the data server, 240, via the secure channel, 247. This request includes the identifier of the authorization request access, IdReq # p, as well as the parameters of the requested access (identifier of the data source, identifier of the access rule and of the authorized use case). It should be noted that the access parameters are clear since they do not disclose anything about the personal data themselves.
The data server then interrogates the second intelligent contract #Authorize by providing it with the access authorization request identifier, IdReq # p in 371. The #Authorize contract verifies that an access authorization corresponding to the number has been successfully has been granted to the user and, in the affirmative, interrogates in 375 the first intelligent contract #Subscribe by transmitting to it the token identifier (TokUID) and obtains in return, 376, the corresponding token. The #Authorize contract returns, in 377, the token in question to the data server.
The data server verifies (by means of the hash function) that the characteristic fingerprint contained in the token does indeed correspond to the access parameters contained in the access request and, if so, extracts the personal data from the second database 245 at the URL specified in the token. The data in the database can be stored in encrypted or clear form. When encrypted, the encryption keys can be stored in a digital safe (“secure element”). The access server can access the vault and read the appropriate encryption key to decrypt the data at the address specified by the read pointer.
If necessary, if several addresses are specified, the personal data read can be aggregated by the data server, before their transmission. In general, the server can carry out a processing on the data thus read before transmitting them to the user.
In step 380, the data server transmits to the user, via the secure channel, the personal data extracted, after having aggregated them, if necessary.
Those skilled in the art will understand that the progress of the steps previously described and in particular, the change of state of the variables of the contract (s), the registration and the access authorization can be checked at any time, by any node with a full copy of the string. The validation is carried out by the verifying nodes according to the aforementioned consensus mechanism, without the need to call upon a centralized trusted third party.
Fig. 4 schematically represents the interactions of an intelligent contract with the devices of the system of FIG. 2 during the steps implemented in FIGS. 3A-3C.
The various devices of the system have been represented on the left of the figure, namely the access token server, 210, the data owner's terminal, 230, the user terminal, 220, and the data server, 240.
In the center of the figure, the smart contracts stored in the block chain are represented, namely kSubscribe, kConsent, #Authorize. Alternatively, #Subscribe, #Consent, # Authorize can be functions grouped within the same contract.
To the right of the figure are represented the verifier nodes responsible for verifying in particular the execution of the code of smart contracts and for mining the blocks.
The token server has a wallet address (also known as an account address in Ethereum), @ walletTokserver, from which it can send transactions to the blockchain, in particular the first transaction to the first smart contract #Subscribe . More precisely, this first transaction is sent to the scriptLockPolicykn locking script of this contract, with the argument of the access token and, if applicable, an amount in cryptocurrency if a remuneration (for example from the data owner or the data server ) is planned.
The data owner's terminal has a wallet address, @ walletOwner, from which it can send transactions to the blockchain, in particular the third transaction to the smart contract, ^ Consent, containing a scriptCollectConsent script. This transaction has as arguments the public key corresponding to the above mentioned wallet address, PublicKey, a NonceB nonce to avoid replay attacks, the Boolean value expressing Consent, as well as the digital signature SigNum of the transaction using the private key associated with the public wallet address, @ walletOwner.
The user's terminal has a wallet address, @ walletUser, from which it can send transactions to the blockchain, in particular the second transaction to the second smart contract, ttAuthorize. This transaction has as argument the user's public key, PublicKey, the identifier of the access authorization request, IdReqttp, and a digital signature of the SigNum transaction using the private key associated with the address of portfolio @ walletUser.
Finally, the data server itself has a wallet address, @ walletDserver, from which it can send transactions to the block chain. He can in particular interrogate from his wallet address the second smart contract by sending it as argument the identifier of the access authorization request, idReq # p. It receives in return if the access authorization has been granted, and if necessary if the consent of the data owner has indeed been granted, the access token of the user.
According to a variant, the possible payments in cryptocurrency can be managed by a specific intelligent contract which maintains an account book of the various elements of the system. For example if the blockchain is Ethereum, this specific contract can be an ERC-20 token contract, (designated by (called # TokenERC20).
Figs. 5A-5B schematically illustrate the exchange of messages, transactions and consultations between elements of the system of FIG. 2 during the steps implemented in FIGS. 3A-3C.
The different actors of the access management system have been represented in columns: the terminal of the owner of the personal data, 230, the user terminal, 220, the access rights server (access tokens server), 210 , the data server, 240, and the blockchain, 250, support for the execution of smart contracts WSubscribe, // Consent, // Authorize, # TokenERC20.
In sub-step 511, the access profiles of the different users are entered in the form of electronic files, via a GUI for example. These access profiles comply with access rules previously stored in the reference database depending on usage. User profiles are read-only. Where appropriate, owners of personal data may have access profiles for both reading and writing. In systems for accessing personal data generated by connected sensors (loT), the sensors can have write-only profiles. In any case, the different users must be able to be identified and authenticated by the access server before they can access the second database.
In sub-step 512, the access token server generates, from its wallet address, @ walletTokserver, a token for the user at the scriptLockPolicy #n address of the script for locking the first smart contract, / / Subscribe. The user's access token is stored by the lock script in the distributed registry, for use #n.
Optionally, in sub-step 514, the owner of the personal data gives his consent to access his data by transmitting a (third) transaction to the second smart contract // Consent. It provides the contract with cryptographic elements making it possible to identify it (its public key) and to authenticate it (digital signature of the transaction), as well as a logical variable expressing consent (or its refusal).
The access token server notifies in 515 to the user that an access right has been created in his favor and transmits to him the token in question, TokUID.
The second step concerns a request for access authorization from the user.
The user wishing to access the owner's personal data submits a request for authorization to access the second smart contract, WAuthorize in 521. This request is recorded in the distributed register. The contract in question issues an access authorization after having authenticated the author of the request and having verified the validity of his access token and, where applicable, the consent of the data owner. To do this, it executes an unlocking script issuing the access authorization if the identity of the user (@ walletUser) is legitimate, if he is the owner of the token and the access token is valid . If the owner's consent is required, the unlock script also checks whether the consent is entered in the distributed register. If the verification is successful, the unlock script provides an access authorization (AuthZ) according to the access rule #n. Otherwise, the authorization is refused and no authorization is recorded in the block chain.
The third step concerns the user's request for access to the data server.
The user transmits at 531 to the data server, via the secure channel, an access request having as arguments the identifier of the access authorization request, IdReq # p, and the parameters of the requested access ( identifier of the data source, an identifier of the access rule and the use case authorized under this access rule).
The data server then interrogates the second intelligent contract ttAuthorize by transmitting to it in 532, from its wallet address, @walletDataServer, a transaction comprising the identifier of the access authorization request, IdReq # p. This smart contract verifies that the authorization is recorded in 533 and, if so, consults in 534 the first WSubscribe contract to recover the token corresponding to the identifier (TokUID) appearing in the access authorization. The token is then returned to the data server at 535 and the server verifies that the characteristic fingerprint that it contains indeed corresponds to the parameters appearing in the access request.
The data server then reads in 536 the personal data stored in the second database, following the URL specified in the token.
If necessary, the server performs processing on the data thus read. For example, it can aggregate data from different records. It can also only be authorized to process or disclose part of the data read (accessed), the processing being defined by the use appearing in the token previously obtained from the block chain.
The data thus read and, if necessary processed, are transmitted to the user in
537, via the secure channel.
权利要求:
Claims (16)
[1" id="c-fr-0001]
1. Method of access to personal data belonging to a data owner (230), the rights of access of a user to this data for a predetermined use being represented by an access token, characterized in that:
(a) the access tokens are generated by an access token server (210) in accordance with access rules stored in a first database hosted by said server, the access token of said user being identified by a token identifier and transmitted (310,512), by means of a first transaction, to a first smart contract stored in a blockchain, the first smart contract registering the access token in the blockchain;
(b) a terminal (220) of said user transmits, by means of a second transaction, an access authorization request (350,521) identified by an authorization request identifier, to a second intelligent contract stored in the chain blocks, the second smart contract interrogating (351) the first smart contract and obtaining the access token (352) by supplying it with cryptographic elements making it possible to authenticate the user, then determining whether access conditions contained in the tokens are fully populated and, if so, registering access permission in the blockchain;
(c) the terminal of said user transmits an access request to the data server (220), the access request comprising said authorization request identifier, the data server interrogating (371) the second intelligent contract by providing it said authorization request identifier, the second intelligent contract returning (377) to the data server the token corresponding to this request if an access authorization corresponding to the identifier of the authorization request is well recorded in the chain of blocks, the data server reading the stored personal data from a second personal database (245) at a URL specified in the token, and transmitting it to the terminal of said user.
[2" id="c-fr-0002]
2. Method for managing access to personal data according to claim 1, characterized in that in step (a), following the emission of the first transaction, the access token server transmits a request consent (320, 513) to the terminal of the owner of the personal data and that the latter sends (330, 514) a third transaction to a third smart contract stored in the blockchain, the third transaction comprising a first variable boolean indicating the consent or refusal of the consent of the owner of the data to the access of this data by said user.
[3" id="c-fr-0003]
3. Method for managing access to personal data according to claim 1 or 2, characterized in that the second transaction comprises the payment of an amount in cryptocurrency to the owner of the data.
[4" id="c-fr-0004]
4. Method for managing access to personal data according to one of the preceding claims, characterized in that said cryptographic elements comprise a public key of the user as well as a wallet address obtained by hashing of said public key.
[5" id="c-fr-0005]
5. Method for managing access to personal data according to one of the preceding claims, characterized in that, before step (b), the token identifier is transmitted to the terminal of said user (515).
[6" id="c-fr-0006]
6. Method for managing access to personal data according to one of the preceding claims, characterized in that in step (b) the access authorization request is recorded in the block chain.
[7" id="c-fr-0007]
7. Method for managing access to personal data according to one of the preceding claims, characterized in that the access token has a first field containing the token identifier, a second field containing a user identifier, a third field containing an identifier of the owner of the personal data, a fourth field containing the URL where the personal data are located and a fifth field containing a digital fingerprint of a set of access parameters.
[8" id="c-fr-0008]
8. Method for managing access to personal data according to claim 7, characterized in that in step (c) the access request transmitted by the terminal of said user further comprises said set of access parameters and that the data server verifies that the digital fingerprint contained in the access token corresponds to said set of access parameters before reading the stored personal data and transmitting them to said user.
[9" id="c-fr-0009]
9. Method for managing access to personal data according to claim 7 or 8, characterized in that the second field comprises a user's wallet address as well as a public key of the user and that the third field includes a wallet address of the data owner and a public key for the data owner.
[10" id="c-fr-0010]
10. Method for managing access to personal data according to one of claims 7 to 9, characterized in that the access token has a sixth field containing the expiration date of said token.
[11" id="c-fr-0011]
11. Method for managing access to personal data according to one of claims 7 to 10, characterized in that the access token has a seventh field containing a boolean variable indicating whether the owner of the data has given his consent.
[12" id="c-fr-0012]
12. Method for managing access to personal data according to one of claims 7 to 11, characterized in that the access token has an eighth field containing a boolean variable indicating whether an amount required for the use of the token has been set.
[13" id="c-fr-0013]
13. Method for managing access to personal data according to one of the preceding claims, characterized in that a fourth intelligent contract is stored in the block chain, this fourth contract having the function of keeping a balance of cryptocurrency accounts of the user, data owner, access token server, and data server.
[14" id="c-fr-0014]
14. Method for managing access to personal data according to one of the preceding claims, characterized in that in step (c), the personal data read from the second database are transmitted to the terminal of said user via a secure channel (247).
[15" id="c-fr-0015]
15. Method for managing access to personal data according to claim 14, characterized in that the data server performs processing on the personal data before transmitting them to the terminal of said user.
[16" id="c-fr-0016]
16. Personal data access management system comprising an access token server (210) hosting a first database (215) containing the access profiles of different users, a terminal of a user (220 ), a data server (240) hosting a second database in which said personal data are stored, the terminal of said user being connected to the data server via a secure channel (247), characterized in that the token server d access, the terminal of said user and the data server each have an interface allowing them to communicate with a blockchain (250);
said access token server (210) being configured to generate an access token for a user, in accordance with access rules stored in the first database, and to transmit (310,512) said token, identified by a token identifier, to a first smart contract stored in the blockchain, by means of a first transaction, the first smart contract recording the access token in the distributed register of the blockchain;
the terminal (220) of said user being configured to transmit, by means of a second transaction, an access authorization request (350,521) identified by an authorization request identifier, to a second intelligent contract stored in the chain blocks, the second smart contract interrogating (351) the first smart contract and 5 obtaining the access token (352) by providing it with cryptographic elements making it possible to authenticate the user, then determining whether the access conditions contained in the token are well filled and, if so, registering the access authorization in the blockchain;
the terminal of said user being further configured to transmit an access request to the data server (220), the access request comprising said authorization request identifier, the data server interrogating (377) then the second contract intelligent by providing it with said authorization request identifier, the second intelligent contract returning (377) to the data server the token if an access authorization corresponding to the authorization request identifier is well recorded in the chain blocks;
the data server being configured to read the personal data stored in the second database (245) at a URL specified in the token, and to transmit the personal data to the terminal of said user via the secure channel.
类似技术:
公开号 | 公开日 | 专利标题
EP3547203A1|2019-10-02|Method and system for managing access to personal data by means of an intelligent contract
EP3343425B1|2019-03-06|System and method for the creation and management of decentralized authorizations for connected objects
TWI725793B|2021-04-21|System and method for mapping decentralized identifiers to real-world entities
EP3547202B1|2021-10-20|Method for access to anonymised data
US10404670B2|2019-09-03|Data security service
US10601789B2|2020-03-24|Session negotiations
EP2513833B1|2019-08-07|Verifiable trust for data through wrapper composition
WO2018170341A1|2018-09-20|Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
KR20190075793A|2019-07-01|Authentication System for Providing Instant Access Using Block Chain
KR102255287B1|2021-05-26|Physical identity management system using One-time-password on Blockchain
US20140229732A1|2014-08-14|Data security service
US9300639B1|2016-03-29|Device coordination
EP3590223B1|2021-01-13|Integrated method and device for storing and sharing data
Bergquist2017|Blockchain Technology and Smart Contracts: Privacy-Preserving Tools
FR3041798A1|2017-03-31|IMPROVED AUTHENTICATION METHOD AND DEVICE
KR20210040078A|2021-04-12|Systems and methods for safe storage services
WO2018167328A1|2018-09-20|Data processing apparatus and methods
FR3073998B1|2019-11-01|DIGITAL METHOD FOR CONTROLLING ACCESS TO AN OBJECT, A RESOURCE OR SERVICE BY A USER
KR20210143846A|2021-11-29|encryption systems
US20210056548A1|2021-02-25|Cryptoasset custodial system with custom logic
WO2021101632A1|2021-05-27|Know your customer | and anti-money laundering | verification in a multi-decentralized private blockchains network
FR3073111A1|2019-05-03|METHOD AND DEVICE FOR STORING AND SHARING INTEGRATED DATA
同族专利:
公开号 | 公开日
EP3547203A1|2019-10-02|
EP3547203B1|2020-12-16|
FR3079322B1|2021-07-02|
US20190294817A1|2019-09-26|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
WO2018019364A1|2016-07-26|2018-02-01|NEC Laboratories Europe GmbH|Method for controlling access to a shared resource|
US20180060496A1|2016-08-23|2018-03-01|BBM Health LLC|Blockchain-based mechanisms for secure health information resource exchange|
CN107682331A|2017-09-28|2018-02-09|复旦大学|Internet of Things identity identifying method based on block chain|
US10944561B1|2018-05-14|2021-03-09|Amazon Technologies Inc.|Policy implementation using security tokens|
US11196551B2|2018-06-27|2021-12-07|International Business Machines Corporation|Automated task management on a blockchain based on predictive and analytical analysis|
US10999270B2|2018-12-28|2021-05-04|Mox-SpeedChain, LLC|Hybrid distributed network ecosystem using systemized blockchain reconciliation, preselected issuance and data operations loops, and reconciliation digital facilitators|
US20200169407A1|2019-07-31|2020-05-28|Alibaba Group Holding Limited|Blockchain-based data authorization method and apparatus|
US11252166B2|2019-07-31|2022-02-15|Advanced New Technologies Co., Ltd.|Providing data authorization based on blockchain|
CN110473094B|2019-07-31|2021-05-18|创新先进技术有限公司|Data authorization method and device based on block chain|
US11057189B2|2019-07-31|2021-07-06|Advanced New Technologies Co., Ltd.|Providing data authorization based on blockchain|
WO2021079925A1|2019-10-23|2021-04-29|賢太郎 新井|Information processing method, information processing system, and information processing program|
WO2021124568A1|2019-12-20|2021-06-24|日本電気株式会社|Access control device, control method, and program|
CN111429254B|2020-03-19|2021-09-10|腾讯科技(深圳)有限公司|Business data processing method and device and readable storage medium|
US20210390191A1|2020-06-10|2021-12-16|Securrency, Inc.|Method, apparatus, and computer-readable medium for confederated rights and hierarchical key management|
CN111814172A|2020-08-28|2020-10-23|支付宝信息技术有限公司|Method, device and equipment for acquiring data authorization information|
法律状态:
2019-03-29| PLFP| Fee payment|Year of fee payment: 2 |
2019-09-27| PLSC| Search report ready|Effective date: 20190927 |
2020-03-31| PLFP| Fee payment|Year of fee payment: 3 |
2021-03-30| PLFP| Fee payment|Year of fee payment: 4 |
优先权:
申请号 | 申请日 | 专利标题
FR1852585|2018-03-26|
FR1852585A|FR3079322B1|2018-03-26|2018-03-26|METHOD AND SYSTEM FOR MANAGING ACCESS TO PERSONAL DATA BY MEANS OF A SMART CONTRACT|FR1852585A| FR3079322B1|2018-03-26|2018-03-26|METHOD AND SYSTEM FOR MANAGING ACCESS TO PERSONAL DATA BY MEANS OF A SMART CONTRACT|
US16/363,395| US20190294817A1|2018-03-26|2019-03-25|Method and system for managing access to personal data by means of a smart contract|
EP19164941.7A| EP3547203B1|2018-03-26|2019-03-25|Method and system for managing access to personal data by means of an intelligent contract|
[返回顶部]